package br.com.hs.nfe.common.enumeration;

/**
 * Enumeração de Códigos do Regime Tributário.
 * @author Ranlive Hrysyk
 */
public enum CRTEnum {

    /**
     * Simples Nacional
     */
    SN_1("1", "Simples Nacional"),
    /**
     * Simples Nacional - excesso de sublimite de receita bruta
     */
    SN_2("2", "Simples Nacional - excesso de sublimite de receita bruta"),
    /**
     * Regime Normal
     */
    RN_3("3", "Regime Normal");
    private final String codigo;
    private final String descricao;

    private CRTEnum(String codigo, String descricao) {
        this.codigo = codigo;
        this.descricao = descricao;
    }

    public String getCRT() {
        return codigo;
    }

    /**
     * Descrição do regime tributário.
     * @return
     */
    public String getDescricao() {
        return descricao;
    }

    @Override
    public String toString() {
        return getDescricao();
    }

    /**
     * Obtém enum pelo código.
     */
    public static CRTEnum getEnumByCodigo(String codigo) {
        for (CRTEnum e : values()) {
            if (e.getCRT().equals(codigo)) {
                return e;
            }
        }
        return null;
    }
}
